package cn.com.dcsgo.repository;

import cn.com.dcsgo.model.search.SkuEs;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;

/**
 * 使用SpringData操作ES
 * ElasticsearchRepository 实体类,ID类型
 *
 * @author Dcsgo
 * @since 2025/4/17 上午11:21
 */
@Repository
public interface SkuRepository extends ElasticsearchRepository<SkuEs, Long> {
    /**
     * 分页查询 ES 中 HotScore 降序排序的 sku 信息
     *
     * @param pageable 分页参数
     * @return 分页结果
     */
    Page<SkuEs> findByOrderByHotScoreDesc(Pageable pageable);

    /**
     * 通过分类id和仓库id分页查询sku信息
     *
     * @param categoryId 分类id
     * @param wareId     仓库id
     * @param pageParma  分页参数
     * @return 分页结果
     */
    Page<SkuEs> findByCategoryIdAndWareId(Long categoryId, Long wareId, Pageable pageParma);

    /**
     * 根据仓库id和关键字分页查询sku信息
     *
     * @param categoryId 分类id
     * @param keyword    关键字
     * @param pageParma  分页参数
     * @return 分页结果
     */
    Page<SkuEs> findByCategoryIdAndKeyword(Long categoryId, String keyword, Pageable pageParma);
}
